Software functionalities can be extended or adapted with other software or software modules. Application Programming Interface (API) is a technique by means of which software can be used by programs instead of using the software by a user through a user interface. Add-in, plug-in, snap-in and extension are examples of components by means of which application functionalities can be adapted. Such a component usually comprises program logic. The program logic is incorporated to the target application, whereby the logic can utilize the application programming interface in order to achieve the adaptation of the functionality of the target application.
“Microsoft Windows™” is an operating system that has a file management system, including a user interface, as part of the operating system. The Windows file management system operates in “Windows Explorer” application, but it may also operate in other applications that run on the operating system if they need file management features. The Windows file management system comprises the “Windows Explorer” application (“Explorer.exe”) and other program modules, such as dynamic link libraries (DLLs), one of which is called “Shell32.d11” in several versions of the Windows operating system. One or more of these program modules may also operate in other applications that run on the operating system if the application(s) need file management features. For example, relevant parts of the Windows file management system operate in word processing applications (e.g., “Microsoft Word”, “Apache OpenOffice Writer”) and other types of applications, some of which are part of the Windows operating system and some of which are installed on top of the operating system, providing such applications with commonly needed functionality such as a user interface for opening files and saving files from a file system.
The Windows file management system is mainly targeted to generic management of files' presence and physical location. The Windows file management system can be adapted according to use situations (e.g., for browsing images or music files), but such an adaptation is carried out by built-in functionality of Windows. This means that the file management functionality is not adapted according to the content in a way that deviates from the way the operating system has been initially programmed. The Windows file management system can also be adapted beyond the built-in functionality of Windows with a Shell Namespace Extension technique (a technique by Microsoft). When the Windows file management system is adapted with the Shell Namespace Extension technique, the extensions of the file management system are installed to a local computer. Such extensions (shell namespace extensions) are program modules, typically dynamic link libraries (DLLs). The extension can thus be used constantly regardless of the use situation. In addition, the extension is usable according to rules that have been programmed to the extension itself. This means that any change to the extension functionality need to be installed separately to each client device.
The generic Windows file management system functionality cannot be extended exclusively by binding it to a certain purpose of use, and the extension needs to be very discrete in order not to disturb other purposes of use of the file management. For this and other reasons well known among professionals familiar with the Windows file management system, the creation of shell namespace extensions requires special programming skills and is time-consuming, making the shell namespace extension technique in its traditional form unsuitable or undesirable if the Windows file management system needs to be adapted to several different, limited purposes of use.